package main

import "fmt"

//演示golang中指针类型
func main() {
	//基本数据类型在内存布局
	var i int = 10
	//i的地址是什么，&i
	fmt.Println("i的地址=", &i)

	//下面的 var ptr *int = &i
	//1、ptr是一个指针变量
	//2、ptr的类型*int
	//3、ptr本身的值&i
	var ptr *int = &i //存储的是i的地址
	fmt.Printf("ptr=%v\n", ptr)
	fmt.Printf("ptr的地址=%v\n", &ptr)  //&取地址，ptr这个变量也会存在于某个内存空间中，会有一个地址
	fmt.Printf("ptr指向的值=%v\n", *ptr) //*取值，ptr指向i的地址，故取得了i的值
}
